Heterogeneous computing can be used to split computational work into a plurality of work components distributed for execution over multiple heterogeneous processing devices to reduce processing time and power consumption for the computational work. For example, heterogeneous computing can be used to distribute computational work among one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more digital signal processors (DSPs), and other types of processors.
In heterogeneous parallel computing constructs, a controller distributes work components to two or more heterogeneous processing devices that run in parallel to reach a common synchronization point at the end of the computational work. Some heterogeneous processing devices can complete the same amount of work in less time than other heterogeneous processing devices. The common synchronization point causes any heterogeneous processing device that finishes its assigned work component before other heterogeneous processing devices to wait until the remaining work components being executed by all the other heterogeneous processing devices are completed.
Often, heterogeneous processing devices can have different power state settings. For example, a heterogeneous processing device can have a performance power state setting that maximizes performance by allowing for a maximum power level during execution. As another example, a heterogeneous processing device can have a power state setting that conserves power by restricting power consumption during execution to a minimum power level. As a further example, a heterogeneous processing device can have an efficient power state setting that maximizes a performance to power ratio during execution.
In current heterogeneous parallel computing constructs a controller can set all heterogeneous processing devices receiving distributed work components to a common power state setting. For example, all heterogeneous processing devices to which work components are distributed can be set to an efficient power state setting by the controller. However, applying the same power state setting to all heterogeneous processing devices can cause one or more heterogeneous processing devices to finish assigned work components before other heterogeneous processing devices, resulting in energy waste and/or higher chances of thermal alarms.